Fixed a lot of bugs in HSFV_management

This commit is contained in:
eddyem 2017-05-05 16:47:02 +03:00
parent 220655233e
commit bf4ea0c493
14 changed files with 1529 additions and 1396 deletions

View File

@ -1,3 +1,60 @@
Edmund Optics high-speed filter wheel management
================================================
This command-line utility allows you to manage with HSFW turrets: check and change their positions,
list connected devices and their property, rename wheels' and filters' names stored in EEPROM of
given turret.
## Command line options:
-H, --home move to home position
-N, --wheel-name=arg wheel name
-W, --wheel-id=arg letter wheel identificator
-h, --help show this help
-i, --filter-id=arg filter identificator like "A3"
-n, --filter-name=arg filter name
-p, --f-position=arg filter position number
-s, --serial=arg turret serial (with leading zeros)
--list list only present devices' names
--list-all list all stored names
--rename rename stored wheels/filters names
--resetnames reset all names to default values
## Usage examples
#### List all devices connected
Свойства подключенного колеса
Wheel ID 'A', name 'UBVRI', serial '00000563', 5 filters:
1: 'U'
2: 'B'
3: 'V'
4: 'R'
5: 'I'
current position: 1
Свойства подключенного колеса
Wheel ID 'B', name 'Sloan', serial '00000532', 5 filters:
1: '1'
2: '2'
3: '3'
4: '4'
5: '5'
current position: 1
#### Move wheel by turret's serial and position number
HSFW_manage -s 00000563 -p 3
Will move first turret (wheel 'A' named 'UBVRI') into third position (filter 'V').
#### Move wheel by filter name
HSFW_manage -nV
Is equivalent of previous.
#### Rename wheel 'B' of first turret
HSFW_manage --rename -s00000563 -WB -N "New name"
Assigns "New name" to wheel 'B' of first turret in spite of its absence in current moment.
You can control all changes by `HSFV_manage --list` (show only wheels presents) or
`HSFV_manage --list-all` (show all EEPROM information).

View File

@ -35,7 +35,7 @@ int find_wheels(wheel_descr **wheels){
struct udev *udev;
struct udev_enumerate *enumerate;
struct udev_list_entry *devices, *dev_list_entry;
wheel_descr *founded = NULL;
wheel_descr *Found = NULL;
// Create the udev object
udev = udev_new();
int N = 0;
@ -67,13 +67,13 @@ int find_wheels(wheel_descr **wheels){
DBG(" VID/PID: %s/%s", vid, pid);
if(strcmp(vid, W_VID) == 0 && strcmp(pid, W_PID) == 0){
++N;
if(!founded){
founded = MALLOC(wheel_descr, 1);
if(!Found){
Found = MALLOC(wheel_descr, 1);
}else{
founded = realloc(founded, sizeof(wheel_descr)*N);
if(!founded) ERR("realloc");
Found = realloc(Found, sizeof(wheel_descr)*N);
if(!Found) ERR("realloc");
}
wheel_descr *curdev = &founded[N-1];
wheel_descr *curdev = &Found[N-1];
int fd = open(devpath, O_RDWR|O_NONBLOCK);
if(fd < 0){
/// "îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s"
@ -92,8 +92,8 @@ int find_wheels(wheel_descr **wheels){
// Free the enumerator object
udev_enumerate_unref(enumerate);
if(wheels){
*wheels = founded;
*wheels = Found;
}else
free(founded);
free(Found);
return N;
}

View File

@ -70,82 +70,81 @@ void check_args(){
list_hw(listNms); // also exit if no HW found
if(listNms) return;
int i;
if(G.wheelID || G.filterId){
// add wheel ID to global parameters if there was nothing
if(G.serial){ // HW given by its serial
DBG("User give serial: %s", G.serial);
for(i = 0; i < HW_found; ++i){
if(strcmp(wheels[i].serial, G.serial) == 0){
/// "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÊ ÔÕÒÅÌÉ Ó ÓÅÒÉÊÎÙÍ ÎÏÍÅÒÏÍ '%s'!"
if(wheel_fd > 0) ERRX(_("More than one turret with serial '%s' found!"), G.serial);
set_cur_wheel(i);
DBG("Find given serial @ wheel %d", i);
}
}
if(wheel_fd < 0){
/// "ôÕÒÅÌØ Ó ÓÅÒÉÊÎÙÍ ÎÏÍÅÒÏÍ '%s' ÎÅ ÎÁÊÄÅÎÁ"
ERRX(_("Turret with serial '%s' not found"), G.serial);
}
}
if(G.wheelID || G.filterId){ // HW by wheel or filter ID or ID 2 rename
char wID = (G.wheelID) ? *G.wheelID : *G.filterId;
DBG("wID=%c", wID);
if((wID < 'A' || wID > POS_B_END) || (G.wheelID && strlen(G.wheelID) != 1)){
/// "éÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ ÄÏÌÖÅÎ ÂÙÔØ ÂÕË×ÏÊ ÏÔ \"A\" ÄÏ \"H\"!"
ERRX(_("Wheel ID should be a letter from \"A\" to \"H\"!"));
}else if(G.filterId && strlen(G.filterId) != 2){
/// "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ ÄÏÌÖÅÎ ÓÏÓÔÏÑÔØ ÉÚ Ä×ÕÈ ÓÉÍ×ÏÌÏ×: ÉÄÅÎÔÉÆÉËÁÔÏÒÁ ËÏÌÅÓÁ É ÎÏÍÅÒÁ ÐÏÚÉÃÉÉ"
ERRX(_("Filter ID should have two symbols: wheel ID and filter position"));
}
wheel_id = wID;
DBG("wheel given by id: %c", wheel_id);
if(!reName){
for(i = 0; i < HW_found; ++i){
if(wheels[i].ID == wheel_id){
/// "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ '%c'!"
if(wheel_fd > 0) ERRX(_("More than one wheel with ID '%c' found!"), wheel_id);
set_cur_wheel(i);
DBG("Find given ID @ wheel %d", i);
}
}
}
char oldid = wheel_id;
if(G.wheelName && (!reName || (G.filterPos || G.filterName))){ // find wheel by name given
if(G.wheelID && !reName){
/// "úÁÄÁÎÙ É ÉÄÅÎÔÉÆÉËÁÔÏÒ, É ÉÍÑ ËÏÌÅÓÁ; ÐÏÐÒÏÂÕÊÔÅ ÞÔÏ-ÔÏ ÏÄÎÏ!"
ERRX(_("You give both wheel ID and wheel name, try something one!"));
if(wheel_fd < 0){
/// "ëÏÌÅÓÏ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ '%c' ÎÅ ÎÁÊÄÅÎÏ"
ERRX(_("Wheel with ID '%c' not found"), wheel_id);
}
if(G.filterId) filter_pos = G.filterId[1] - '0';
} else if(G.wheelName){ // find wheel by name given
for(i = 0; i < HW_found; ++i){
if(strcmp(wheels[i].name, G.wheelName) == 0){
/// "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÍÅÎÅÍ '%s'!"
if(wheel_fd > 0) ERRX(_("More than one wheel with name '%s' found!"), G.wheelName);
set_cur_wheel(i);
break;
DBG("Find given name @ wheel %d", i);
}
}
if(reName) wheel_id = oldid;
}
void setWid(){
if(oldid > 0) wheel_id = oldid;
if(!G.wheelID){
G.wheelID = calloc(2, 1);
*G.wheelID = wheel_id;
if(wheel_fd < 0 && !reName){
/// "ëÏÌÅÓÏ Ó ÉÍÅÎÅÍ '%s' ÎÅ ÎÁÊÄÅÎÏ"
ERRX(_("Wheel with name '%s' not found"), G.wheelName);
}
}
if(G.serial){ // HW given by its serial
for(i = 0; i < HW_found; ++i){
if(strcmp(wheels[i].serial, G.serial) == 0){
set_cur_wheel(i);
if(reName) setWid();
break;
}
}
if(i == HW_found) wheel_id = 0; // make an error message later
}
// if there's only one turret, fill wheel_id
if(HW_found == 1 && (wheel_id < 0 || (wheel_fd < 0 && reName))){
// if there's only one turret, choose it
if(HW_found == 1 && wheel_id < 0){
set_cur_wheel(0);
if(reName) setWid();
DBG("No specific options with only turret, choose it");
}
if((wheel_fd < 0 || !wheel_chosen) && !G.filterName){
/// "úÁÄÁÎÎÏÅ ËÏÌÅÓÏ ÎÅ ÏÂÎÁÒÕÖÅÎÏ!"
ERRX(_("Given wheel not found!"));
}
if(showpos || setdef) return;
if(G.filterId){ // filter given by its id like "B3"
char *fid = G.filterId;
/// "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ ÓÏÓÔÏÉÔ ÉÚ ÂÕË×Ù (ËÏÌÅÓÏ) É ÃÉÆÒÙ (ÐÏÚÉÃÉÑ)"
if(strlen(G.filterId) != 2 || fid[1] > '9' || fid[1] < '0')
/// "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ - ÂÕË×Á (ËÏÌÅÓÏ) É ÞÉÓÌÏ (ÐÏÚÉÃÉÑ)"
ERRX(_("Filter ID is letter (wheel) and number (position)"));
filter_pos = fid[1] - '0';
}else if(G.filterPos){ // filter given by numerical position
if(G.filterPos){ // filter given by numerical position
filter_pos = G.filterPos;
}else if(G.filterName){ // filter given by name - search it
int search_f(int N){
int i, m = wheels[N].maxpos;
for(i = 1; i <= m; ++i){
DBG("Search filter %s in pos %d (%s)", G.filterName, i, get_filter_name(&wheels[N], i));
if(strcmp(G.filterName, get_filter_name(&wheels[N], i)) == 0){
filter_pos = i;
if(!wheel_chosen){
set_cur_wheel(N);
}
DBG("filter_pos=%d", filter_pos);
// Check if user ask to find filter with given name
if(filter_pos < 1 && G.filterName && !reName){ // filter given by name - search it
int search_f(wheel_descr *wheel){
int i, m = wheel->maxpos;
for(i = 1; i <= m; ++i){
DBG("Search filter %s in pos %d (%s)", G.filterName, i, get_filter_name(wheel, i));
DBG("len1: %zd, len2: %zd", strlen(G.filterName), strlen(get_filter_name(wheel, i)));
if(strcmp(G.filterName, get_filter_name(wheel, i)) == 0){
filter_pos = i;
break;
}
}
@ -153,18 +152,31 @@ void check_args(){
return 0;
}
int not_found = 1;
if(wheel_chosen) not_found = search_f(wheel_id);
else for(i = 0; i < HW_found && not_found; ++i){
not_found = search_f(i);
if(wheel_chosen) not_found = search_f(wheel_chosen);
else for(i = 0; i < HW_found; ++i){
if(!search_f(&wheels[i])){
not_found = 0;
/// "ïÂÎÁÒÕÖÅÎÏ ÂÏÌØÛÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÍÅÎÅÍ ÆÉÌØÔÒÁ '%s'!"
if(wheel_fd > 0) ERRX(_("More than one wheel with filter name '%s' found!"), G.filterName);
set_cur_wheel(i);
}
}
if(not_found){
/// "æÉÌØÔÒ %s ÎÅ ÏÂÎÁÒÕÖÅÎ"
ERRX(_("Filter %s not found!"), G.filterName);
}
}else{
if(!gohome) showpos = 1; // no action given - just show position
return;
}
if(wheel_fd < 0){
/// "úÁÄÁÎÎÏÅ ËÏÌÅÓÏ ÎÅ ÏÂÎÁÒÕÖÅÎÏ!"
ERRX(_("Given wheel not found!"));
}
if(reName && !G.wheelID){
G.wheelID = calloc(2, 1);
*G.wheelID = wheel_id;
}
if(filter_pos < 1 && !gohome) showpos = 1; // no action given - just show position
if(showpos || setdef || gohome) return;
// now check if filter position right
if(reName) max_pos = get_max_pos(wheel_id);
if(filter_pos < 1 || filter_pos > max_pos){
/// "ðÏÚÉÃÉÑ ÆÉÌØÔÒÁ ÄÏÌÖÎÁ ÂÙÔØ ÞÉÓÌÏÍ ÏÔ 1 ÄÏ %d!"
@ -179,8 +191,8 @@ void check_args(){
*/
int writereg(int fd, uint8_t *buf, int l){
uint8_t reg = buf[0];
//#if 0//
#ifdef EBUG
#if 0
// #ifdef EBUG
int i;
printf("Write reg %d:", reg);
for(i = 0; i < l; ++i) printf(" %02hhx", buf[i]);
@ -206,8 +218,8 @@ int readreg(int fd, uint8_t *buf, int reg, int l){
WARNX(_("Error reading data"));
return 1;
}
//#if 0//
#ifdef EBUG
#if 0
//#ifdef EBUG
int i;
printf("Read reg %d:", reg);
for(i = 0; i < l; ++i) printf(" %02hhx", buf[i]);
@ -313,7 +325,7 @@ char *get_filter_name(wheel_descr *wheel, int pos){
/**
* list properties of wheels & fill remain fields of struct wheel_descr
*/
void list_props(_U_ int verblevl, wheel_descr *wheel){
void list_props(int verblevl, wheel_descr *wheel){
uint8_t buf[REG_NAME_LEN+1];
int fd = wheel->fd;
if(fd < 0){
@ -350,6 +362,7 @@ void list_props(_U_ int verblevl, wheel_descr *wheel){
if(nm){
strncpy(wheel->name, nm, 9);
if(verblevl) printf(", name '%s'", wheel->name);
DBG("Wheel name: %s", wheel->name);
}
if(wheel->serial && verblevl){
printf(", serial '%s'", wheel->serial);
@ -406,7 +419,7 @@ void list_props(_U_ int verblevl, wheel_descr *wheel){
void list_hw(int show){
int i;
if(show) DBG("show");
HW_found = find_wheels(&wheels);
HW_found = find_wheels(&wheels); // get list of wheels with therir file descriptors and serial numbers
DBG("Found %d dev[s]", HW_found);
if(HW_found == 0){
/// "ôÕÒÅÌÉ ÎÅ ÏÂÎÁÒÕÖÅÎÙ"
@ -560,6 +573,10 @@ int move_wheel(){
int process_args(){
FNAME();
if(wheel_id < 0) return 1;
if(reName || setdef){
rename_hw();
return 0;
}
if(showpos){
printf("%d\n", poll_regstatus(wheel_fd, 0));
return 0;
@ -568,10 +585,6 @@ int process_args(){
go_home(wheel_fd);
return 0;
}
if(reName || setdef){
rename_hw();
return 0;
}
if(filter_pos < 0) return 1;
return move_wheel();
}

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-16 14:08+0300\n"
"POT-Creation-Date: 2017-05-05 16:16+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,224 +17,6 @@ msgstr ""
"Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8bit\n"
#. amount of pcount and/or scount wrong
#. / "îÅÐÒÁ×ÉÌØÎÙÊ ÆÏÒÍÁÔ ÓÔÒÏËÉ ÐÏÍÏÝÉ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:56
msgid "Wrong helpstring!"
msgstr ""
#. / "ãÅÌÏÅ ×ÎÅ ÄÏÐÕÓÔÉÍÏÇÏ ÄÉÁÐÁÚÏÎÁ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:86
msgid "Integer out of range"
msgstr ""
#. / "îÅÐÒÁ×ÉÌØÎÙÊ ÐÁÒÁÍÅÔÒ: %s"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:480
#, c-format
msgid "Wrong parameter: %s"
msgstr ""
#. / "%s: ÎÅÏÂÈÏÄÉÍ ÁÒÇÕÍÅÎÔ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:485
#, c-format
msgid "%s: argument needed!"
msgstr ""
#. / "îÅÐÒÁ×ÉÌØÎÙÊ ÁÒÇÕÍÅÎÔ \"%s\" ÐÁÒÁÍÅÔÒÁ \"%s\""
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:490
#, c-format
msgid "Wrong argument \"%s\" of parameter \"%s\""
msgstr ""
#. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hidmanage.c:80
#, c-format
msgid "Can't open %s"
msgstr ""
#. / "îÅ ÚÁÄÁÎÏ ÉÍÑ ÆÁÊÌÁ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:174
msgid "No filename given!"
msgstr ""
#. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s ÄÌÑ ÞÔÅÎÉÑ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:177
#, c-format
msgid "Can't open %s for reading"
msgstr ""
#. / "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ stat %s"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:180
#, c-format
msgid "Can't stat %s"
msgstr ""
#. / "ïÛÉÂËÁ mmap"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:184
msgid "Mmap error for input"
msgstr ""
#. / "îÅ ÍÏÇÕ ÚÁËÒÙÔØ mmap'ÎÕÔÙÊ ÆÁÊÌ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:186
msgid "Can't close mmap'ed file"
msgstr ""
#. / "îÅ ÍÏÇÕ munmap"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:196
msgid "Can't munmap"
msgstr ""
#. / "îÅ ÍÏÇÕ ÎÁÓÔÒÏÉÔØ ËÏÎÓÏÌØ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:221
msgid "Can't setup console"
msgstr ""
#. Get settings
#. / "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÎÁÓÔÒÏÊËÉ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:291
msgid "Can't get settings"
msgstr ""
#. / "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÁÓÔÒÏÊËÉ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:302
msgid "Can't set settings"
msgstr ""
#. / "éÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ ÄÏÌÖÅÎ ÂÙÔØ ÂÕË×ÏÊ ÏÔ \"A\" ÄÏ \"H\"!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:77
msgid "Wheel ID should be a letter from \"A\" to \"H\"!"
msgstr ""
#. / "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ '%c'!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:84
#, c-format
msgid "More than one wheel with ID '%c' found!"
msgstr ""
#. / "úÁÄÁÎÙ É ÉÄÅÎÔÉÆÉËÁÔÏÒ, É ÉÍÑ ËÏÌÅÓÁ; ÐÏÐÒÏÂÕÊÔÅ ÞÔÏ-ÔÏ ÏÄÎÏ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:93
msgid "You give both wheel ID and wheel name, try something one!"
msgstr ""
#. / "úÁÄÁÎÎÏÅ ËÏÌÅÓÏ ÎÅ ÏÂÎÁÒÕÖÅÎÏ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:127
msgid "Given wheel not found!"
msgstr ""
#. / "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ - ÂÕË×Á (ËÏÌÅÓÏ) É ÞÉÓÌÏ (ÐÏÚÉÃÉÑ)"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:135
msgid "Filter ID is letter (wheel) and number (position)"
msgstr ""
#. / "æÉÌØÔÒ %s ÎÅ ÏÂÎÁÒÕÖÅÎ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:162
#, c-format
msgid "Filter %s not found!"
msgstr ""
#. / "ðÏÚÉÃÉÑ ÆÉÌØÔÒÁ ÄÏÌÖÎÁ ÂÙÔØ ÞÉÓÌÏÍ ÏÔ 1 ÄÏ %d!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:171
#, c-format
msgid "Filter position should be a number from 1 to %d!"
msgstr ""
#. / "ïÛÉÂËÁ ÏÔÐÒÁ×ËÉ ÄÁÎÎÙÈ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:191
msgid "Error sending data"
msgstr ""
#. / "ïÛÉÂËÁ ÞÔÅÎÉÑ ÄÁÎÎÙÈ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:206
msgid "Error reading data"
msgstr ""
#. / "ïÛÉÂËÁ, ËÏÌÉÞÅÓÔ×Ï ÐÏÐÙÔÏË ÉÓÔÅËÌÏ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:230
msgid "Error, tries amount exceed"
msgstr ""
#. / "ôÕÒÅÌØ ÎÅ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ, Ä×ÉÖÅÎÉÅ × \"ÄÏÍ\""
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:248
msgid "Turret isn't initialized, move home..."
msgstr ""
#. / "ïÖÉÄÁÎÉÅ ÏËÏÎÞÁÎÉÑ Ä×ÉÖÅÎÉÑ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:265
#, c-format
msgid "Wait for end of moving "
msgstr ""
#. / "ðÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ, ÐÏ×ÔÏÒÉÔÅ ÚÁÐÕÓË"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:274
msgid "Error ocured, repeat again"
msgstr ""
#. / "úÁÄÁÎÎÁÑ ÐÏÚÉÃÉÑ ×ÎÅ ÄÉÁÐÁÚÏÎÁ 1..%d"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:294
#, c-format
msgid "Given position out of range 1..%d"
msgstr ""
#. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÕÓÔÒÏÊÓÔ×Ï"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:321
msgid "Can't open device"
msgstr ""
#. / "\nó×ÏÊÓÔ×Á ÐÏÄËÌÀÞÅÎÎÏÇÏ ËÏÌÅÓÁ\n"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:347
msgid ""
"\n"
"Connected wheel properties\n"
msgstr ""
#. / "\n÷ÓÅ ÚÁÐÉÓÉ EEPROM\n"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:375
msgid ""
"\n"
"All records from EEPROM\n"
msgstr ""
#. / "ôÕÒÅÌÉ ÎÅ ÏÂÎÁÒÕÖÅÎÙ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:413
msgid "No turrets found"
msgstr ""
#. / "ïÂÎÁÒÕÖÅÎÏ %d ÔÕÒÅÌÅÊ, ÎÏ ÎÉ Ë ÏÄÎÏÊ ÎÅÔ ÐÒÁ× ÄÏÓÔÕÐÁ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:419
#, c-format
msgid "Found %d turrets but have no access rights to any"
msgstr ""
#. / "îÁÚ×ÁÎÉÅ ÎÅ ÄÏÌÖÎÏ ÐÒÅ×ÙÛÁÔØ ×ÏÓØÍÉ ÓÉÍ×ÏÌÏ×"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:439
msgid "Name should be not longer than 8 symbols"
msgstr ""
#. / "þÔÏÂÙ ÐÅÒÅÉÍÅÎÏ×ÁÔØ, ÎÅÏÂÈÏÄÉÍÏ ÕËÁÚÁÔØ ÎÏ×ÏÅ ÎÁÚ×ÁÎÉÅ ÆÉÌØÔÒÁ/ËÏÌÅÓÁ É ÅÇÏ ÐÏÚÉÃÉÀ/ÉÄÅÎÔÉÆÉËÁÔÏÒ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:458
msgid "You should give new filter/wheel name and its POS/ID to rename!"
msgstr ""
#. / "îÅ ÕÄÁÌÏÓØ ÐÅÒÅÉÍÅÎÏ×ÁÔØ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:485
msgid "Can't rename"
msgstr ""
#. / "ðÅÒÅÉÍÅÎÏ×ÁÎÏ ÕÄÁÞÎÏ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:487
msgid "Succesfully renamed!\n"
msgstr ""
#. / "úÁÃÉËÌÉ×ÁÎÉÅ, ÐÏÐÒÏÂÕÊÔÅ ÅÝÅ ÒÁÚ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:496
msgid "Cycling detected, try again"
msgstr ""
#. / "õÖÅ × ÚÁÄÁÎÎÏÊ ÐÏÚÉÃÉÉ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:529
msgid "Already at position"
msgstr ""
#. / "ÏÔÏÂÒÁÚÉÔØ ÜÔÕ ÓÐÒÁ×ËÕ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/cmdlnopts.c:64
msgid "show this help"
@ -303,3 +85,252 @@ msgstr ""
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/cmdlnopts.c:128
msgid "Ignore parameters:"
msgstr ""
#. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hidmanage.c:80
#, c-format
msgid "Can't open %s"
msgstr ""
#. / "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÊ ÔÕÒÅÌÉ Ó ÓÅÒÉÊÎÙÍ ÎÏÍÅÒÏÍ '%s'!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:79
#, c-format
msgid "More than one turret with serial '%s' found!"
msgstr ""
#. / "ôÕÒÅÌØ Ó ÓÅÒÉÊÎÙÍ ÎÏÍÅÒÏÍ '%s' ÎÅ ÎÁÊÄÅÎÁ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:86
#, c-format
msgid "Turret with serial '%s' not found"
msgstr ""
#. / "éÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ ÄÏÌÖÅÎ ÂÙÔØ ÂÕË×ÏÊ ÏÔ \"A\" ÄÏ \"H\"!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:94
msgid "Wheel ID should be a letter from \"A\" to \"H\"!"
msgstr ""
#. / "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ ÄÏÌÖÅÎ ÓÏÓÔÏÑÔØ ÉÚ Ä×ÕÈ ÓÉÍ×ÏÌÏ×: ÉÄÅÎÔÉÆÉËÁÔÏÒÁ ËÏÌÅÓÁ É ÎÏÍÅÒÁ ÐÏÚÉÃÉÉ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:97
msgid "Filter ID should have two symbols: wheel ID and filter position"
msgstr ""
#. / "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ '%c'!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:105
#, c-format
msgid "More than one wheel with ID '%c' found!"
msgstr ""
#. / "ëÏÌÅÓÏ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ '%c' ÎÅ ÎÁÊÄÅÎÏ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:113
#, c-format
msgid "Wheel with ID '%c' not found"
msgstr ""
#. / "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÍÅÎÅÍ '%s'!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:120
#, c-format
msgid "More than one wheel with name '%s' found!"
msgstr ""
#. / "ëÏÌÅÓÏ Ó ÉÍÅÎÅÍ '%s' ÎÅ ÎÁÊÄÅÎÏ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:127
#, c-format
msgid "Wheel with name '%s' not found"
msgstr ""
#. / "ïÂÎÁÒÕÖÅÎÏ ÂÏÌØÛÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÍÅÎÅÍ ÆÉÌØÔÒÁ '%s'!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:160
#, c-format
msgid "More than one wheel with filter name '%s' found!"
msgstr ""
#. / "æÉÌØÔÒ %s ÎÅ ÏÂÎÁÒÕÖÅÎ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:166
#, c-format
msgid "Filter %s not found!"
msgstr ""
#. / "úÁÄÁÎÎÏÅ ËÏÌÅÓÏ ÎÅ ÏÂÎÁÒÕÖÅÎÏ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:171
msgid "Given wheel not found!"
msgstr ""
#. / "ðÏÚÉÃÉÑ ÆÉÌØÔÒÁ ÄÏÌÖÎÁ ÂÙÔØ ÞÉÓÌÏÍ ÏÔ 1 ÄÏ %d!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:183
#, c-format
msgid "Filter position should be a number from 1 to %d!"
msgstr ""
#. / "ïÛÉÂËÁ ÏÔÐÒÁ×ËÉ ÄÁÎÎÙÈ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:203
msgid "Error sending data"
msgstr ""
#. / "ïÛÉÂËÁ ÞÔÅÎÉÑ ÄÁÎÎÙÈ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:218
msgid "Error reading data"
msgstr ""
#. / "ïÛÉÂËÁ, ËÏÌÉÞÅÓÔ×Ï ÐÏÐÙÔÏË ÉÓÔÅËÌÏ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:242
msgid "Error, tries amount exceed"
msgstr ""
#. / "ôÕÒÅÌØ ÎÅ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ, Ä×ÉÖÅÎÉÅ × \"ÄÏÍ\""
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:260
msgid "Turret isn't initialized, move home..."
msgstr ""
#. / "ïÖÉÄÁÎÉÅ ÏËÏÎÞÁÎÉÑ Ä×ÉÖÅÎÉÑ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:277
#, c-format
msgid "Wait for end of moving "
msgstr ""
#. / "ðÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ, ÐÏ×ÔÏÒÉÔÅ ÚÁÐÕÓË"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:286
msgid "Error ocured, repeat again"
msgstr ""
#. / "úÁÄÁÎÎÁÑ ÐÏÚÉÃÉÑ ×ÎÅ ÄÉÁÐÁÚÏÎÁ 1..%d"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:306
#, c-format
msgid "Given position out of range 1..%d"
msgstr ""
#. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÕÓÔÒÏÊÓÔ×Ï"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:333
msgid "Can't open device"
msgstr ""
#. / "\nó×ÏÊÓÔ×Á ÐÏÄËÌÀÞÅÎÎÏÇÏ ËÏÌÅÓÁ\n"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:359
msgid ""
"\n"
"Connected wheel properties\n"
msgstr ""
#. / "\n÷ÓÅ ÚÁÐÉÓÉ EEPROM\n"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:388
msgid ""
"\n"
"All records from EEPROM\n"
msgstr ""
#. / "ôÕÒÅÌÉ ÎÅ ÏÂÎÁÒÕÖÅÎÙ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:426
msgid "No turrets found"
msgstr ""
#. / "ïÂÎÁÒÕÖÅÎÏ %d ÔÕÒÅÌÅÊ, ÎÏ ÎÉ Ë ÏÄÎÏÊ ÎÅÔ ÐÒÁ× ÄÏÓÔÕÐÁ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:432
#, c-format
msgid "Found %d turrets but have no access rights to any"
msgstr ""
#. / "îÁÚ×ÁÎÉÅ ÎÅ ÄÏÌÖÎÏ ÐÒÅ×ÙÛÁÔØ ×ÏÓØÍÉ ÓÉÍ×ÏÌÏ×"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:452
msgid "Name should be not longer than 8 symbols"
msgstr ""
#. / "þÔÏÂÙ ÐÅÒÅÉÍÅÎÏ×ÁÔØ, ÎÅÏÂÈÏÄÉÍÏ ÕËÁÚÁÔØ ÎÏ×ÏÅ ÎÁÚ×ÁÎÉÅ ÆÉÌØÔÒÁ/ËÏÌÅÓÁ É ÅÇÏ ÐÏÚÉÃÉÀ/ÉÄÅÎÔÉÆÉËÁÔÏÒ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:471
msgid "You should give new filter/wheel name and its POS/ID to rename!"
msgstr ""
#. / "îÅ ÕÄÁÌÏÓØ ÐÅÒÅÉÍÅÎÏ×ÁÔØ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:498
msgid "Can't rename"
msgstr ""
#. / "ðÅÒÅÉÍÅÎÏ×ÁÎÏ ÕÄÁÞÎÏ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:500
msgid "Succesfully renamed!\n"
msgstr ""
#. / "úÁÃÉËÌÉ×ÁÎÉÅ, ÐÏÐÒÏÂÕÊÔÅ ÅÝÅ ÒÁÚ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:509
msgid "Cycling detected, try again"
msgstr ""
#. / "õÖÅ × ÚÁÄÁÎÎÏÊ ÐÏÚÉÃÉÉ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:542
msgid "Already at position"
msgstr ""
#. amount of pcount and/or scount wrong
#. / "îÅÐÒÁ×ÉÌØÎÙÊ ÆÏÒÍÁÔ ÓÔÒÏËÉ ÐÏÍÏÝÉ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:56
msgid "Wrong helpstring!"
msgstr ""
#. / "ãÅÌÏÅ ×ÎÅ ÄÏÐÕÓÔÉÍÏÇÏ ÄÉÁÐÁÚÏÎÁ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:86
msgid "Integer out of range"
msgstr ""
#. / "îÅÐÒÁ×ÉÌØÎÙÊ ÐÁÒÁÍÅÔÒ: %s"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:480
#, c-format
msgid "Wrong parameter: %s"
msgstr ""
#. / "%s: ÎÅÏÂÈÏÄÉÍ ÁÒÇÕÍÅÎÔ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:485
#, c-format
msgid "%s: argument needed!"
msgstr ""
#. / "îÅÐÒÁ×ÉÌØÎÙÊ ÁÒÇÕÍÅÎÔ \"%s\" ÐÁÒÁÍÅÔÒÁ \"%s\""
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:490
#, c-format
msgid "Wrong argument \"%s\" of parameter \"%s\""
msgstr ""
#. / "îÅ ÚÁÄÁÎÏ ÉÍÑ ÆÁÊÌÁ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:174
msgid "No filename given!"
msgstr ""
#. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s ÄÌÑ ÞÔÅÎÉÑ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:177
#, c-format
msgid "Can't open %s for reading"
msgstr ""
#. / "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ stat %s"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:180
#, c-format
msgid "Can't stat %s"
msgstr ""
#. / "ïÛÉÂËÁ mmap"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:184
msgid "Mmap error for input"
msgstr ""
#. / "îÅ ÍÏÇÕ ÚÁËÒÙÔØ mmap'ÎÕÔÙÊ ÆÁÊÌ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:186
msgid "Can't close mmap'ed file"
msgstr ""
#. / "îÅ ÍÏÇÕ munmap"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:196
msgid "Can't munmap"
msgstr ""
#. / "îÅ ÍÏÇÕ ÎÁÓÔÒÏÉÔØ ËÏÎÓÏÌØ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:221
msgid "Can't setup console"
msgstr ""
#. Get settings
#. / "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÎÁÓÔÒÏÊËÉ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:291
msgid "Can't get settings"
msgstr ""
#. / "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÁÓÔÒÏÊËÉ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/usefull_macros.c:302
msgid "Can't set settings"
msgstr ""

View File

@ -7,7 +7,7 @@
msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-16 14:03+0300\n"
"POT-Creation-Date: 2017-05-05 16:16+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,14 +17,14 @@ msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Content-Transfer-Encoding: 8bit\n"
#. / "\nВсе записи EEPROM\n"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:375
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:388
msgid "\n"
"All records from EEPROM\n"
msgstr "\n"
"Все записи EEPROM\n"
#. / "\nСвойства подключенного колеса\n"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:347
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:359
msgid "\n"
"Connected wheel properties\n"
msgstr "\n"
@ -37,7 +37,7 @@ msgid "%s: argument needed!"
msgstr "%s: необходим аргумент!"
#. / "Уже в заданной позиции"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:529
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:542
msgid "Already at position"
msgstr "Уже в заданной позиции"
@ -70,12 +70,12 @@ msgid "Can't open %s for reading"
msgstr "Не могу открыть %s для чтения"
#. / "Не могу открыть устройство"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:321
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:333
msgid "Can't open device"
msgstr "Не могу открыть устройство"
#. / "Не удалось переименовать"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:485
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:498
msgid "Can't rename"
msgstr "Не удалось переименовать"
@ -96,61 +96,61 @@ msgid "Can't stat %s"
msgstr "Не могу выполнить stat %s"
#. / "Зацикливание, попробуйте еще раз"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:496
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:509
msgid "Cycling detected, try again"
msgstr "Зацикливание, попробуйте еще раз"
#. / "Произошла ошибка, повторите запуск"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:274
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:286
msgid "Error ocured, repeat again"
msgstr "Произошла ошибка, повторите запуск"
#. / "Ошибка чтения данных"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:206
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:218
msgid "Error reading data"
msgstr "Ошибка чтения данных"
#. / "Ошибка отправки данных"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:191
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:203
msgid "Error sending data"
msgstr "Ошибка отправки данных"
#. / "Ошибка, количество попыток истекло"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:230
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:242
msgid "Error, tries amount exceed"
msgstr "Ошибка, количество попыток истекло"
#. / "Фильтр %s не обнаружен"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:162
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:166
#, c-format
msgid "Filter %s not found!"
msgstr "Фильтр %s не обнаружен"
#. / "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ - ÂÕË×Á (ËÏÌÅÓÏ) É ÞÉÓÌÏ (ÐÏÚÉÃÉÑ)"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:135
msgid "Filter ID is letter (wheel) and number (position)"
msgstr "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ - ÂÕË×Á (ËÏÌÅÓÏ) É ÞÉÓÌÏ (ÐÏÚÉÃÉÑ)"
#. / "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ ÄÏÌÖÅÎ ÓÏÓÔÏÑÔØ ÉÚ Ä×ÕÈ ÓÉÍ×ÏÌÏ×: ÉÄÅÎÔÉÆÉËÁÔÏÒÁ ËÏÌÅÓÁ É ÎÏÍÅÒÁ ÐÏÚÉÃÉÉ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:97
msgid "Filter ID should have two symbols: wheel ID and filter position"
msgstr "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ ÄÏÌÖÅÎ ÓÏÓÔÏÑÔØ ÉÚ Ä×ÕÈ ÓÉÍ×ÏÌÏ×: ÉÄÅÎÔÉÆÉËÁÔÏÒÁ ËÏÌÅÓÁ É ÎÏÍÅÒÁ ÐÏÚÉÃÉÉ"
#. / "Позиция фильтра должна быть числом от 1 до %d!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:171
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:183
#, c-format
msgid "Filter position should be a number from 1 to %d!"
msgstr "Позиция фильтра должна быть числом от 1 до %d!"
#. / "Обнаружено %d турелей, но ни к одной нет прав доступа"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:419
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:432
#, c-format
msgid "Found %d turrets but have no access rights to any"
msgstr "Обнаружено %d турелей, но ни к одной нет прав доступа"
#. / "Заданная позиция вне диапазона 1..%d"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:294
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:306
#, c-format
msgid "Given position out of range 1..%d"
msgstr "Заданная позиция вне диапазона 1..%d"
#. / "Заданное колесо не обнаружено!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:127
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:171
msgid "Given wheel not found!"
msgstr "Заданное колесо не обнаружено!"
@ -169,14 +169,32 @@ msgstr "
msgid "Mmap error for input"
msgstr "Ошибка mmap"
#. / "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÊ ÔÕÒÅÌÉ Ó ÓÅÒÉÊÎÙÍ ÎÏÍÅÒÏÍ '%s'!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:79
#, c-format
msgid "More than one turret with serial '%s' found!"
msgstr "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÊ ÔÕÒÅÌÉ Ó ÓÅÒÉÊÎÙÍ ÎÏÍÅÒÏÍ '%s'!"
#. / "Обнаружено более одного колеса с идентификатором '%c'!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:84
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:105
#, c-format
msgid "More than one wheel with ID '%c' found!"
msgstr "Обнаружено более одного колеса с идентификатором '%c'!"
#. / "ïÂÎÁÒÕÖÅÎÏ ÂÏÌØÛÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÍÅÎÅÍ ÆÉÌØÔÒÁ '%s'!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:160
#, c-format
msgid "More than one wheel with filter name '%s' found!"
msgstr "ïÂÎÁÒÕÖÅÎÏ ÂÏÌØÛÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÍÅÎÅÍ ÆÉÌØÔÒÁ '%s'!"
#. / "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÍÅÎÅÍ '%s'!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:120
#, c-format
msgid "More than one wheel with name '%s' found!"
msgstr "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÍÅÎÅÍ '%s'!"
#. / "Название не должно превышать восьми символов"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:439
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:452
msgid "Name should be not longer than 8 symbols"
msgstr "Название не должно превышать восьми символов"
@ -186,31 +204,49 @@ msgid "No filename given!"
msgstr "Не задано имя файла!"
#. / "Турели не обнаружены"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:413
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:426
msgid "No turrets found"
msgstr "Турели не обнаружены"
#. / "Переименовано удачно!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:487
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:500
msgid "Succesfully renamed!\n"
msgstr "Переименовано удачно!\n"
#. / "Турель не инициализирована, движение в \"дом\""
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:248
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:260
msgid "Turret isn't initialized, move home..."
msgstr "Турель не инициализирована, движение в \"дом\""
#. / "ôÕÒÅÌØ Ó ÓÅÒÉÊÎÙÍ ÎÏÍÅÒÏÍ '%s' ÎÅ ÎÁÊÄÅÎÁ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:86
#, c-format
msgid "Turret with serial '%s' not found"
msgstr "ôÕÒÅÌØ Ó ÓÅÒÉÊÎÙÍ ÎÏÍÅÒÏÍ '%s' ÎÅ ÎÁÊÄÅÎÁ"
#. / "Ожидание окончания движения"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:265
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:277
#, c-format
msgid "Wait for end of moving "
msgstr "Ожидание окончания движения"
#. / "Идентификатор колеса должен быть буквой от \"A\" до \"H\"!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:77
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:94
msgid "Wheel ID should be a letter from \"A\" to \"H\"!"
msgstr "Идентификатор колеса должен быть буквой от \"A\" до \"H\"!"
#. / "ëÏÌÅÓÏ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ '%c' ÎÅ ÎÁÊÄÅÎÏ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:113
#, c-format
msgid "Wheel with ID '%c' not found"
msgstr "ëÏÌÅÓÏ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ '%c' ÎÅ ÎÁÊÄÅÎÏ"
#. / "ëÏÌÅÓÏ Ó ÉÍÅÎÅÍ '%s' ÎÅ ÎÁÊÄÅÎÏ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:127
#, c-format
msgid "Wheel with name '%s' not found"
msgstr "ëÏÌÅÓÏ Ó ÉÍÅÎÅÍ '%s' ÎÅ ÎÁÊÄÅÎÏ"
#. / "Неправильный аргумент \"%s\" параметра \"%s\""
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:490
#, c-format
@ -234,13 +270,8 @@ msgstr "
msgid "Wrong parameter: %s"
msgstr "Неправильный параметр: %s"
#. / "úÁÄÁÎÙ É ÉÄÅÎÔÉÆÉËÁÔÏÒ, É ÉÍÑ ËÏÌÅÓÁ; ÐÏÐÒÏÂÕÊÔÅ ÞÔÏ-ÔÏ ÏÄÎÏ!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:93
msgid "You give both wheel ID and wheel name, try something one!"
msgstr "úÁÄÁÎÙ É ÉÄÅÎÔÉÆÉËÁÔÏÒ, É ÉÍÑ ËÏÌÅÓÁ; ÐÏÐÒÏÂÕÊÔÅ ÞÔÏ-ÔÏ ÏÄÎÏ!"
#. / "Чтобы переименовать, необходимо указать новое название фильтра/колеса и его позицию/идентификатор!"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:458
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:471
msgid "You should give new filter/wheel name and its POS/ID to rename!"
msgstr "Чтобы переименовать, необходимо указать новое название фильтра/"
"колеса и его позицию/идентификатор!"
@ -303,3 +334,6 @@ msgstr "
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/cmdlnopts.c:68
msgid "wheel name"
msgstr "название колеса"
#~ msgid "You give both wheel ID and wheel name, try something one!"
#~ msgstr "úÁÄÁÎÙ É ÉÄÅÎÔÉÆÉËÁÔÏÒ, É ÉÍÑ ËÏÌÅÓÁ; ÐÏÐÒÏÂÕÊÔÅ ÞÔÏ-ÔÏ ÏÄÎÏ!"

View File

@ -92,7 +92,7 @@ extern void signals(int sig);
*/
#define ALLOC(type, var, size) type * var = ((type *)my_alloc(size, sizeof(type)))
#define MALLOC(type, size) ((type *)my_alloc(size, sizeof(type)))
#define FREE(ptr) do{if(ptr){free(ptr); ptr = NULL;}}while(0)
#define FREE(ptr) do{free(ptr); ptr = NULL;}while(0)
double dtime();

View File

@ -1,4 +1,4 @@
/*
/* geany_encoding=koi8-r
* parseargs.c - parsing command line arguments & print help
*
* Copyright 2013 Edward V. Emelianoff <eddy@sao.ru>

View File

@ -168,8 +168,6 @@ void server_(int sock){
}
// Main loop
while(1){
fd_set readfds;
struct timeval timeout;
socklen_t size = sizeof(struct sockaddr_in);
struct sockaddr_in their_addr;
int newsock;