Показать сообщение отдельно
  #1 (permalink)  
Старый 10.11.2016, 13:47
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Алгоритм переделки массива
Всем привет!)
Давно меня не было на форуме, но сейчас нужна ваша помощь.
У меня есть такая штука в виде(говорю сразу, это не js код)
https://gist.github.com/KosBeg/4c5ff...eb87cce59fd403
и его нужно "переделать" в следующий код
Код:
static struct LCM_setting_table lcm_initialization_setting[] = {
    { 0x0, 0x01, {0x00}},
    { 0xff, 0x03, {0x80, 0x09, 0x01}},
    { 0x0, 0x01, {0x80}},
    { 0xff, 0x02, {0x80, 0x09}},
    { 0x0, 0x01, {0x80}},
    { 0xf5, 0x0c, {0x01, 0x18, 0x02, 0x18, 0x10, 0x18, 0x02, 0x18, 0x0e, 0x18, 0x0f, 0x20}},
    { 0x0, 0x01, {0x90}},
    { 0xf5, 0x0a, {0x02, 0x18, 0x08, 0x18, 0x06, 0x18, 0x0d, 0x18, 0x0b, 0x18}},
    { 0x0, 0x01, {0xa0}},
    { 0xf5, 0x0a, {0x10, 0x18, 0x01, 0x18, 0x14, 0x18, 0x14, 0x18, 0x00, 0x00}},
    { 0x0, 0x01, {0xb0}},
    { 0xf5, 0x0c, {0x14, 0x18, 0x12, 0x18, 0x13, 0x18, 0x11, 0x18, 0x13, 0x18, 0x00, 0x00}},
    { 0x0, 0x01, {0xb4}},
    { 0xc0, 0x01, {0x50}},
    { 0x0, 0x01, {0x80}},
    { 0xc5, 0x01, {0xa3}},
    { 0x0, 0x01, {0x90}},
    { 0xc5, 0x02, {0xd6, 0x76}},
    { 0x0, 0x01, {0x00}},
    { 0xd8, 0x02, {0xaf, 0xaf}},
    { 0x0, 0x01, {0x00}},
    { 0xd9, 0x01, {0x72}},
    { 0x0, 0x01, {0x81}},
    { 0xc1, 0x01, {0x66}},
    { 0x0, 0x01, {0xa1}},
    { 0xc1, 0x01, {0x08}},
    { 0x0, 0x01, {0xa3}},
    { 0xc0, 0x01, {0x1b}},
    { 0x0, 0x01, {0x81}},
    { 0xc4, 0x01, {0x83}},
    { 0x0, 0x01, {0x92}},
    { 0xc5, 0x01, {0x01}},
    { 0x0, 0x01, {0xb1}},
    { 0xc5, 0x01, {0xa9}},
    { 0x0, 0x01, {0x90}},
    { 0xc0, 0x06, {0x00, 0x44, 0x00, 0x00, 0x00, 0x03}},
    { 0x0, 0x01, {0xa6}},
    { 0xc1, 0x03, {0x01, 0x00, 0x00}},
    { 0x0, 0x01, {0x80}},
    { 0xce, 0x06, {0x85, 0x03, 0x00, 0x84, 0x03, 0x00}},
    { 0x0, 0x01, {0x90}},
    { 0xce, 0x06, {0x33, 0x26, 0x00, 0x33, 0x27, 0x00}},
    { 0x0, 0x01, {0xa0}},
    { 0xce, 0x0e, {0x38, 0x03, 0x03, 0x20, 0x00, 0x00, 0x00, 0x38, 0x02, 0x03, 0x21, 0x00, 0x00, 0x00}},
    { 0x0, 0x01, {0xb0}},
    { 0xce, 0x0e, {0x38, 0x01, 0x03, 0x22, 0x00, 0x00, 0x00, 0x38, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00}},
    { 0x0, 0x01, {0xc0}},
    { 0xce, 0x0e, {0x30, 0x00, 0x03, 0x24, 0x00, 0x00, 0x00, 0x30, 0x01, 0x03, 0x25, 0x00, 0x00, 0x00}},
    { 0x0, 0x01, {0xd0}},
    { 0xce, 0x0e, {0x30, 0x02, 0x03, 0x26, 0x00, 0x00, 0x00, 0x30, 0x03, 0x03, 0x27, 0x00, 0x00, 0x00}},
    { 0x0, 0x01, {0xc7}},
    { 0xcf, 0x01, {0x00}},
    { 0x0, 0x01, {0xc0}},
    { 0xcb, 0x0f, {0x00, 0x00, 0x00, 0x00, 0x54, 0x54, 0x54, 0x54, 0x00, 0x54, 0x00, 0x54, 0x00, 0x00, 0x00}},
    { 0x0, 0x01, {0xd0}},
    { 0xcb, 0x0f, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x54, 0x54, 0x54, 0x00, 0x54}},
    { 0x0, 0x01, {0xe0}},
    { 0xcb, 0x09, {0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
    { 0x0, 0x01, {0x80}},
    { 0xcc, 0x0a, {0x00, 0x00, 0x00, 0x00, 0x0c, 0x0a, 0x10, 0x0e, 0x00, 0x02}},
    { 0x0, 0x01, {0x90}},
    { 0xcc, 0x0f, {0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b}},
    { 0x0, 0x01, {0xa0}},
    { 0xcc, 0x0f, {0x09, 0x0f, 0x0d, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
    { 0x0, 0x01, {0xb0}},
    { 0xcc, 0x0a, {0x00, 0x00, 0x00, 0x00, 0x0d, 0x0f, 0x09, 0x0b, 0x00, 0x05}},
    { 0x0, 0x01, {0xc0}},
    { 0xcc, 0x0f, {0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e}},
    { 0x0, 0x01, {0xd0}},
    { 0xcc, 0x0f, {0x10, 0x0a, 0x0c, 0x00, 0x06, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
    { 0x0, 0x01, {0x00}},
    { 0xe1, 0x10, {0x02, 0x10, 0x16, 0x0f, 0x08, 0x10, 0x0a, 0x0a, 0x05, 0x08, 0x0d, 0x06, 0x0e, 0x0d, 0x07, 0x00}},
    { 0x0, 0x01, {0x00}},
    { 0xe2, 0x10, {0x02, 0x10, 0x16, 0x0f, 0x08, 0x11, 0x0a, 0x0a, 0x05, 0x08, 0x0c, 0x07, 0x0f, 0x0d, 0x07, 0x00}},
    { 0x0, 0x01, {0x00}},
    { 0x26, 0x01, {0x00}},
    { 0x11, 0x00, {},},
    { REGFLAG_DELAY, 200, {}},
    { 0x29, 0x00, {},},
    { 0x2c, 0x00, {},},
    { 0xaa, 0x00, {},},
}
что мне известно:
1) один большой массив должен быть разбит на много маленьких;
2) массив имеет вид {0x00, 0x05,{0x01,0x02,0x03,0x04,0x05}}, тоесть это значит {команда, размер массива данных,{элементы массива}}
елементы массива могут быть нулями, и команда тоже может быть нулем
3) имеется такой не рабочий алгоритм доставания массивов на си подобном языке
Код:
auto curaddr = ScreenEA();
auto b, i, j, c, c1, cmd;
auto s;
for (i=0; i < 0x6; i++){
    b = Byte(curaddr);
    c = Byte(curaddr+1);
    if (b == 0xAB){
        Message("{ REGFLAG_DELAY, %d, {}", c);
    }else if (b == 0xAA){
        Message("{ REGFLAG_END_OF_TABLE, 0x%02x, {}", c);
    }else{  
        Message("{ 0x%x, 0x%02x, {", b, c );
        if (c==0){
                Message("},");
        }else{  
            for(j=0; j< c-1; j++){
                Message("0x%02x, ", Byte(curaddr+2+j) );
            }
            Message("0x%02x}", Byte(curaddr+3+c) );
        }
    }
    Message("},\n");
    curaddr = curaddr+0x42;
}
что можете посоветовать?
Ответить с цитированием