Ктонить может мне дать такую информацию? Хочу написать софт для 525 курили (Curitel 525) но без формата команд просто не куда. Плиз ктонить подскажите, кто чего знает по этому поводу. Буду очень благадарен за любую информацию.
Ктонить может мне дать такую информацию? Хочу написать софт для 525 курили (Curitel 525) но без формата команд просто не куда. Плиз ктонить подскажите, кто чего знает по этому поводу. Буду очень благадарен за любую информацию.
Нет этой информации ни у кого! Перед тем как писать софт надо изучить как работают 10-к чужих софтов, для этого нужна прога что в аттаче и немножко мозгов.
Вообще-то людям хватает прошивки и иды )))
kerpal Кому хватает - таких вопросов не задают
Да, возможно такой информации нет, но всеже кто писал софт, может поделится некоторой полезной иформацией. По поводу сканера портов я знаю. По поводу информации, интерсно какой байт за что отвечает. Да и вообще кто может поделится опытом.
Да, вот еще одна неплохая софтина, но есть недостатки.
shisik
Пиши в мыло, вместе помозгуем. Я тоже недавно начал заниматься.
nz_vio
Пока нечего писать, а каковы твои результаты?
На данный момент изучил работу существующих программ, научился менять ESN в своей трубе своей программой, за исключением одного нюанса о котором позже. Команды выглядят так:
aa bb ... bb xx xx 7e,
где аа - код команды, bb ... bb - параметры, xx xx - контрольная сумма, 7е - завершающий символ;
и так:
aa 00 00 bb ... bb 00 ... 00 xx xx 7e
(значение символов то же).
Все это хорошо, но вот xx xx - пока не совсем понятно. Это CRC-16, но найденные мною алгоритмы расчета не совсем врозумительны (или я торможу? :-)).
В связи с этим (извиняюсь за надоедливость) попутный вопрос к
Maxi
Поскольку С мне ближе, чем асм, берем такое:
// Add next character to the CRC checksum for PPP packets
unsigned int calc(unsigned int c)
{
char i; // Just a loop index
c &= 0xFF; // Only calculate CRC on low byte
for (i=0;i<8;i++) { // Loop eight times, once for each bit
if (c&1) { // Is bit high?
c /= 2; // Position for next bit
c ^= 0x8408; // Toggle the feedback bits
} else c /= 2; // Just position for next bit
}
return c; // Return the 16 bit checksum
}
(с) Microchip
Что получает функция на входе? Всю последовательность или побайтово?
могу кинуть CRC на Дефи или С++. для сравнения
либо я не понимаю ничего в с++ либо алгоритм не правильный. Правильный будет выглдеть примерно так.
char i;
word crc_16, d;
crc = 0xffff; /*инициализация алгоритма */
d = 0x00; /* тестовый байт данных */
d &= 0xFF;
for (i=0;i<8;i++) {
if ( ((crc ^ d) & 0x01) != 0 ){
crc >>= 1;
crc ^=0x8408
} else {
crc >>= 1;
}
d >>= 1;
}
return (crc);
Впрочем я и правда мало смыслю в C.
Последний раз редактировалось Maxi; 29.09.2004 в 07:25.
В паскале CRC выглядит следующим образом:
function ThreadComPort.CRC16:TPaket;
var crc:word;
i,k:integer;
Paket:array[1..24] of byte;
begin
crc:=$FFFF;
...
(Заполняем массив Paket)
...
for i:=1 to (длинна Paket - 24) do
begin
crc := crc xor Paket[i];
for k:=1 to (количество бит - 8) do
begin
if(crc and 1=1) then
begin
crc := crc shr 1 ;
crc:=crc xor $A001
end
else crc := crc shr 1;
end;
end;