Перейти к публикации

User-сервисы под ядро Тимцентра. Проблема


Рекомендованные сообщения

Добрый день!

проблема с пользовательскими сервисами. Как известно они позволяют со стороны Java вызывать код написанный на с\с++ под ядро

так вот возвращать таким пользовательским сервисом - строки, теги объектов. НО НЕПОЛУЧАЕТСЯ возвращать массивы

делаю так

сперва регистрация сервиса

header_nargs = 2;

header_retValueType;

header_inputArgTypes = (int *)MEM_alloc ( header_nargs * sizeof (int) );

header_inputArgTypes[0] = USERARG_STRING_TYPE;//тег ревизии

header_inputArgTypes[1] = USERARG_STRING_TYPE;//сайт

header_retValueType = USERARG_TAG_TYPE + USERARG_ARRAY_TYPE;

USERSERVICE_register_method ("getDocNAPOALL", getDocNAPOALL_wrap, header_nargs,

header_inputArgTypes, header_retValueType );

MEM_free(header_inputArgTypes);

потом реализация

int getDocNAPOALL_wrap(void *retValue)

{

int ifail;

tag_t rev_tag=0;

char *uid=0;

char *site_name=0;

char tmpstr[1000]="";

ifail = USERARG_get_string_argument(&uid);

ITK__convert_uid_to_tag(uid,&rev_tag);

ifail = USERARG_get_string_argument(&site_name);

char* item_rev=0;

int n_docn_best=1;

tag_t *docn_best=(tag_t*)MEM_alloc(1*sizeof(tag_t));

//-------------------------------

//тут я получаю массив объектов docn_best

USERSERVICE_array_t arrayStruct;

ifail = USERSERVICE_return_tag_array (docn_best,n_docn_best,&arrayStruct);

(void*)retValue = arrayStruct.array;

}

код работает без ошибок!!

но в Java мне массив тегов не возвращается!

В чём ошибка?

Ссылка на сообщение
Поделиться на других сайтах


пример с массивом строк:

char *string[2];

//инициализация массива

//////////////////

//

ifail = USERSERVICE_return_string_array((const char **)string,2,(USERSERVICE_array_t *)pReturnValue);

у вас скорее всего не выполнено приведение типа.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • eljer0n
      Большое спасибо! Посмотрю. Но, судя по всему, даже если удастся заставить его сохранять чертеж с трехзначным исполнением, видимо, в той же спецификации правильного отображения не добиться. У Леона с товарищем был об этом разговор, что солид вроде как не воспринимает исполнения дальше двузначного. Хотя, может и я неправильно понял. Вернусь к этому вопросу чуть позже. Еще раз спасибо за совет.
    • mrVladimir
      @gudstartup @Viktor2004 спасибо Вам за такое участие.  Я вот тоже в maintenance manual заглянул (наконец-то ). А вот фраза "при замене FROM/SRAM необходимо ..." (под пунктом 3 во вложении) не подразумевает, что появление ps5523 произойдет только если мы решим на нашей чпу поменять именно FROM/SRAM. А при замене других печатных плат (в том числе и материнской ) необходимо только как написано в пункте 2 восстановить данные памяти SRAM и, при необходимости, файлы пользователя. Нет?
    • maxx2000
      @davidovka это же очевидно. Вдруг нужного размера не окажется  как в анекдоте  
    • davidovka
      А для чего и сотни исполнений в таблице и гибкость одновременно?
    • ak762
      в СВ есть встроенный калькулятор для расчета балок при различных сценариях нагружения если ваш профиль монорельса совпадает с предопределенными профилями то можно прикинуть поведение монорелься без анализа на картинке 2 расчета двутавровой балки в качестве теста    
    • Viktor2004
      @mrVladimir не спешите отчаиваться. Вопрос спорный Я завел новую тему в которой мы это выясним  
    • Viktor2004
      Уважаемые специалисты. У кого был опыт замены фануковских плат? Именно на ЧПУ. Пожалуйста напишите какое ЧПУ и какую плату меняли И результат. Подошла или не подошла  
    • gudstartup
      @mrVladimir к сожалению с вашей платой все не так просто вам придется приобрести ее клон то есть она должна быть подготовлена продавцом и в нее должен быть записан серийный номер вашей старой платы он на штрихкоде а так готовить умеют не все или готовьтесь к сертификации опций также есть еще один аппаратный вариант но не каждый будет на новую плату м\сх перепаивать с риском превратить ее в кирпич.   если бы у вас был отдельный модуль процессора то вы бы просто переставили его в новую плату и все а с этой платой из-за ее не модульности намучаешься
    • SAPRonOff
      в окне состава изделия снять замочки у колонки позиция, тогда генератор колонки состава изделия не будет им присваивать свои значения автоматически, а запомнит то - что вы поставили или стояло до изменений проекта: 
    • Kelny
      Смотреть надо процедуру main, почти в самом конце: Слева от этих строк на сером поле ставите красные точки (клик мышкой) и запускаете макрос, когда макрос дойдёт до обозначенных строк можно будет наводить мышку на перменные, например, sPathName и смотреть значения, что бы определить где сбой: Для продолжения выполнения макроса нажимаем зелёный треугольничек (как кнопка Play).      
×
×
  • Создать...