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

View File

@ -70,82 +70,81 @@ void check_args(){
list_hw(listNms); // also exit if no HW found list_hw(listNms); // also exit if no HW found
if(listNms) return; if(listNms) return;
int i; 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; 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)){ if((wID < 'A' || wID > POS_B_END) || (G.wheelID && strlen(G.wheelID) != 1)){
/// "éÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ ÄÏÌÖÅÎ ÂÙÔØ ÂÕË×ÏÊ ÏÔ \"A\" ÄÏ \"H\"!" /// "éÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ ÄÏÌÖÅÎ ÂÙÔØ ÂÕË×ÏÊ ÏÔ \"A\" ÄÏ \"H\"!"
ERRX(_("Wheel ID should be a letter from \"A\" to \"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; wheel_id = wID;
DBG("wheel given by id: %c", wheel_id); DBG("wheel given by id: %c", wheel_id);
if(!reName){
for(i = 0; i < HW_found; ++i){ for(i = 0; i < HW_found; ++i){
if(wheels[i].ID == wheel_id){ if(wheels[i].ID == wheel_id){
/// "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ '%c'!" /// "ïÂÎÁÒÕÖÅÎÏ ÂÏÌÅÅ ÏÄÎÏÇÏ ËÏÌÅÓÁ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ '%c'!"
if(wheel_fd > 0) ERRX(_("More than one wheel with ID '%c' found!"), wheel_id); if(wheel_fd > 0) ERRX(_("More than one wheel with ID '%c' found!"), wheel_id);
set_cur_wheel(i); set_cur_wheel(i);
DBG("Find given ID @ wheel %d", i);
} }
} }
} }
char oldid = wheel_id; if(wheel_fd < 0){
if(G.wheelName && (!reName || (G.filterPos || G.filterName))){ // find wheel by name given /// "ëÏÌÅÓÏ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ '%c' ÎÅ ÎÁÊÄÅÎÏ"
if(G.wheelID && !reName){ ERRX(_("Wheel with ID '%c' not found"), wheel_id);
/// "úÁÄÁÎÙ É ÉÄÅÎÔÉÆÉËÁÔÏÒ, É ÉÍÑ ËÏÌÅÓÁ; ÐÏÐÒÏÂÕÊÔÅ ÞÔÏ-ÔÏ ÏÄÎÏ!"
ERRX(_("You give both wheel ID and wheel name, try something one!"));
} }
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){ for(i = 0; i < HW_found; ++i){
if(strcmp(wheels[i].name, G.wheelName) == 0){ 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); set_cur_wheel(i);
break; DBG("Find given name @ wheel %d", i);
} }
} }
if(reName) wheel_id = oldid; if(wheel_fd < 0 && !reName){
} /// "ëÏÌÅÓÏ Ó ÉÍÅÎÅÍ '%s' ÎÅ ÎÁÊÄÅÎÏ"
void setWid(){ ERRX(_("Wheel with name '%s' not found"), G.wheelName);
if(oldid > 0) wheel_id = oldid;
if(!G.wheelID){
G.wheelID = calloc(2, 1);
*G.wheelID = wheel_id;
} }
} }
if(G.serial){ // HW given by its serial // if there's only one turret, choose it
for(i = 0; i < HW_found; ++i){ if(HW_found == 1 && wheel_id < 0){
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))){
set_cur_wheel(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){ if(G.filterPos){ // filter given by numerical position
/// "úÁÄÁÎÎÏÅ ËÏÌÅÓÏ ÎÅ ÏÂÎÁÒÕÖÅÎÏ!"
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
filter_pos = G.filterPos; 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; break;
} }
} }
@ -153,18 +152,31 @@ void check_args(){
return 0; return 0;
} }
int not_found = 1; int not_found = 1;
if(wheel_chosen) not_found = search_f(wheel_id); if(wheel_chosen) not_found = search_f(wheel_chosen);
else for(i = 0; i < HW_found && not_found; ++i){ else for(i = 0; i < HW_found; ++i){
not_found = search_f(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){ if(not_found){
/// "æÉÌØÔÒ %s ÎÅ ÏÂÎÁÒÕÖÅÎ" /// "æÉÌØÔÒ %s ÎÅ ÏÂÎÁÒÕÖÅÎ"
ERRX(_("Filter %s not found!"), G.filterName); 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(reName) max_pos = get_max_pos(wheel_id);
if(filter_pos < 1 || filter_pos > max_pos){ if(filter_pos < 1 || filter_pos > max_pos){
/// "ðÏÚÉÃÉÑ ÆÉÌØÔÒÁ ÄÏÌÖÎÁ ÂÙÔØ ÞÉÓÌÏÍ ÏÔ 1 ÄÏ %d!" /// "ðÏÚÉÃÉÑ ÆÉÌØÔÒÁ ÄÏÌÖÎÁ ÂÙÔØ ÞÉÓÌÏÍ ÏÔ 1 ÄÏ %d!"
@ -179,8 +191,8 @@ void check_args(){
*/ */
int writereg(int fd, uint8_t *buf, int l){ int writereg(int fd, uint8_t *buf, int l){
uint8_t reg = buf[0]; uint8_t reg = buf[0];
//#if 0// #if 0
#ifdef EBUG // #ifdef EBUG
int i; int i;
printf("Write reg %d:", reg); printf("Write reg %d:", reg);
for(i = 0; i < l; ++i) printf(" %02hhx", buf[i]); 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")); WARNX(_("Error reading data"));
return 1; return 1;
} }
//#if 0// #if 0
#ifdef EBUG //#ifdef EBUG
int i; int i;
printf("Read reg %d:", reg); printf("Read reg %d:", reg);
for(i = 0; i < l; ++i) printf(" %02hhx", buf[i]); 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 * 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]; uint8_t buf[REG_NAME_LEN+1];
int fd = wheel->fd; int fd = wheel->fd;
if(fd < 0){ if(fd < 0){
@ -350,6 +362,7 @@ void list_props(_U_ int verblevl, wheel_descr *wheel){
if(nm){ if(nm){
strncpy(wheel->name, nm, 9); strncpy(wheel->name, nm, 9);
if(verblevl) printf(", name '%s'", wheel->name); if(verblevl) printf(", name '%s'", wheel->name);
DBG("Wheel name: %s", wheel->name);
} }
if(wheel->serial && verblevl){ if(wheel->serial && verblevl){
printf(", serial '%s'", wheel->serial); printf(", serial '%s'", wheel->serial);
@ -406,7 +419,7 @@ void list_props(_U_ int verblevl, wheel_descr *wheel){
void list_hw(int show){ void list_hw(int show){
int i; int i;
if(show) DBG("show"); 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); DBG("Found %d dev[s]", HW_found);
if(HW_found == 0){ if(HW_found == 0){
/// "ôÕÒÅÌÉ ÎÅ ÏÂÎÁÒÕÖÅÎÙ" /// "ôÕÒÅÌÉ ÎÅ ÏÂÎÁÒÕÖÅÎÙ"
@ -560,6 +573,10 @@ int move_wheel(){
int process_args(){ int process_args(){
FNAME(); FNAME();
if(wheel_id < 0) return 1; if(wheel_id < 0) return 1;
if(reName || setdef){
rename_hw();
return 0;
}
if(showpos){ if(showpos){
printf("%d\n", poll_regstatus(wheel_fd, 0)); printf("%d\n", poll_regstatus(wheel_fd, 0));
return 0; return 0;
@ -568,10 +585,6 @@ int process_args(){
go_home(wheel_fd); go_home(wheel_fd);
return 0; return 0;
} }
if(reName || setdef){
rename_hw();
return 0;
}
if(filter_pos < 0) return 1; if(filter_pos < 0) return 1;
return move_wheel(); return move_wheel();
} }

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,224 +17,6 @@ msgstr ""
"Content-Type: text/plain; charset=koi8-r\n" "Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8bit\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 #: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/cmdlnopts.c:64
msgid "show this help" msgid "show this help"
@ -303,3 +85,252 @@ msgstr ""
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/cmdlnopts.c:128 #: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/cmdlnopts.c:128
msgid "Ignore parameters:" msgid "Ignore parameters:"
msgstr "" 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 "" msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n" msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,14 +17,14 @@ msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. / "\nВсе записи EEPROM\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" msgid "\n"
"All records from EEPROM\n" "All records from EEPROM\n"
msgstr "\n" msgstr "\n"
"Все записи EEPROM\n" "Все записи EEPROM\n"
#. / "\nСвойства подключенного колеса\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" msgid "\n"
"Connected wheel properties\n" "Connected wheel properties\n"
msgstr "\n" msgstr "\n"
@ -37,7 +37,7 @@ msgid "%s: argument needed!"
msgstr "%s: необходим аргумент!" 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" msgid "Already at position"
msgstr "Уже в заданной позиции" msgstr "Уже в заданной позиции"
@ -70,12 +70,12 @@ msgid "Can't open %s for reading"
msgstr "Не могу открыть %s для чтения" 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" msgid "Can't open device"
msgstr "Не могу открыть устройство" 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" msgid "Can't rename"
msgstr "Не удалось переименовать" msgstr "Не удалось переименовать"
@ -96,61 +96,61 @@ msgid "Can't stat %s"
msgstr "Не могу выполнить 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" msgid "Cycling detected, try again"
msgstr "Зацикливание, попробуйте еще раз" 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" msgid "Error ocured, repeat again"
msgstr "Произошла ошибка, повторите запуск" 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" msgid "Error reading data"
msgstr "Ошибка чтения данных" 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" msgid "Error sending data"
msgstr "Ошибка отправки данных" 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" msgid "Error, tries amount exceed"
msgstr "Ошибка, количество попыток истекло" msgstr "Ошибка, количество попыток истекло"
#. / "Фильтр %s не обнаружен" #. / "Фильтр %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 #, c-format
msgid "Filter %s not found!" msgid "Filter %s not found!"
msgstr "Фильтр %s не обнаружен" msgstr "Фильтр %s не обнаружен"
#. / "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ - ÂÕË×Á (ËÏÌÅÓÏ) É ÞÉÓÌÏ (ÐÏÚÉÃÉÑ)" #. / "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ ÄÏÌÖÅÎ ÓÏÓÔÏÑÔØ ÉÚ Ä×ÕÈ ÓÉÍ×ÏÌÏ×: ÉÄÅÎÔÉÆÉËÁÔÏÒÁ ËÏÌÅÓÁ É ÎÏÍÅÒÁ ÐÏÚÉÃÉÉ"
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:135 #: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/hsfw.c:97
msgid "Filter ID is letter (wheel) and number (position)" msgid "Filter ID should have two symbols: wheel ID and filter position"
msgstr "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ - ÂÕË×Á (ËÏÌÅÓÏ) É ÞÉÓÌÏ (ÐÏÚÉÃÉÑ)" msgstr "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ ÄÏÌÖÅÎ ÓÏÓÔÏÑÔØ ÉÚ Ä×ÕÈ ÓÉÍ×ÏÌÏ×: ÉÄÅÎÔÉÆÉËÁÔÏÒÁ ËÏÌÅÓÁ É ÎÏÍÅÒÁ ÐÏÚÉÃÉÉ"
#. / "Позиция фильтра должна быть числом от 1 до %d!" #. / "Позиция фильтра должна быть числом от 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 #, c-format
msgid "Filter position should be a number from 1 to %d!" msgid "Filter position should be a number from 1 to %d!"
msgstr "Позиция фильтра должна быть числом от 1 до %d!" msgstr "Позиция фильтра должна быть числом от 1 до %d!"
#. / "Обнаружено %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 #, c-format
msgid "Found %d turrets but have no access rights to any" msgid "Found %d turrets but have no access rights to any"
msgstr "Обнаружено %d турелей, но ни к одной нет прав доступа" msgstr "Обнаружено %d турелей, но ни к одной нет прав доступа"
#. / "Заданная позиция вне диапазона 1..%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 #, c-format
msgid "Given position out of range 1..%d" msgid "Given position out of range 1..%d"
msgstr "Заданная позиция вне диапазона 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!" msgid "Given wheel not found!"
msgstr "Заданное колесо не обнаружено!" msgstr "Заданное колесо не обнаружено!"
@ -169,14 +169,32 @@ msgstr "
msgid "Mmap error for input" msgid "Mmap error for input"
msgstr "Ошибка mmap" 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'!" #. / "Обнаружено более одного колеса с идентификатором '%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 #, c-format
msgid "More than one wheel with ID '%c' found!" msgid "More than one wheel with ID '%c' found!"
msgstr "Обнаружено более одного колеса с идентификатором '%c'!" 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" msgid "Name should be not longer than 8 symbols"
msgstr "Название не должно превышать восьми символов" msgstr "Название не должно превышать восьми символов"
@ -186,31 +204,49 @@ msgid "No filename given!"
msgstr "Не задано имя файла!" 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" msgid "No turrets found"
msgstr "Турели не обнаружены" 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" msgid "Succesfully renamed!\n"
msgstr "Переименовано удачно!\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..." msgid "Turret isn't initialized, move home..."
msgstr "Турель не инициализирована, движение в \"дом\"" 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 #, c-format
msgid "Wait for end of moving " msgid "Wait for end of moving "
msgstr "Ожидание окончания движения" msgstr "Ожидание окончания движения"
#. / "Идентификатор колеса должен быть буквой от \"A\" до \"H\"!" #. / "Идентификатор колеса должен быть буквой от \"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\"!" msgid "Wheel ID should be a letter from \"A\" to \"H\"!"
msgstr "Идентификатор колеса должен быть буквой от \"A\" до \"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\"" #. / "Неправильный аргумент \"%s\" параметра \"%s\""
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:490 #: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/parseargs.c:490
#, c-format #, c-format
@ -234,13 +270,8 @@ msgstr "
msgid "Wrong parameter: %s" msgid "Wrong parameter: %s"
msgstr "Неправильный параметр: %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!" msgid "You should give new filter/wheel name and its POS/ID to rename!"
msgstr "Чтобы переименовать, необходимо указать новое название фильтра/" msgstr "Чтобы переименовать, необходимо указать новое название фильтра/"
"колеса и его позицию/идентификатор!" "колеса и его позицию/идентификатор!"
@ -303,3 +334,6 @@ msgstr "
#: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/cmdlnopts.c:68 #: /home/eddy/Docs/SAO/Edmund_optics/HSFW_management/cmdlnopts.c:68
msgid "wheel name" msgid "wheel name"
msgstr "название колеса" 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 ALLOC(type, var, size) type * var = ((type *)my_alloc(size, sizeof(type)))
#define MALLOC(type, size) ((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(); double dtime();

View File

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

View File

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