File mode : support raw 7 bits binary mode.

This commit is contained in:
Jean-François DEL NERO
2026-06-07 14:55:08 +02:00
parent 0a8893950f
commit dd3ee41e29
+15 -12
View File
@@ -418,7 +418,7 @@ int set_numerical_frame(poc_batch * batch, int batchcnt, unsigned int ric, unsig
return ba+1;
}
int set_alphanum_frame(poc_batch * batch, int batchcnt, unsigned int ric, unsigned int func, char * message)
int set_alphanum_frame(poc_batch * batch, int batchcnt, unsigned int ric, unsigned int func, char * message, int message_size)
{
int ba,b,i,w,framecnt;
int digitcnt;
@@ -427,13 +427,7 @@ int set_alphanum_frame(poc_batch * batch, int batchcnt, unsigned int ric, unsign
unsigned char stream[80+1];
int bitin,bitout;
i = 0;
while(message[i] != 0)
{
i++;
}
digitcnt = i;
digitcnt = message_size;
framecnt = (digitcnt*7) / 20;
if( (digitcnt*7) % 20 )
@@ -448,9 +442,9 @@ int set_alphanum_frame(poc_batch * batch, int batchcnt, unsigned int ric, unsign
i = 0;
bitin = 0;
bitout = 0;
while( message[bitin/7] && ((bitout>>3) < sizeof(stream)-1) )
while( ((bitin/7)<message_size) && ((bitout>>3) < sizeof(stream)-1) )
{
if( LUT_ByteBitsInverter[message[bitin/7]<<1] & ( 0x40 >> (bitin%7) ) )
if( LUT_ByteBitsInverter[(message[bitin/7]&0x7F)<<1] & ( 0x40 >> (bitin%7) ) )
stream[bitout>>3] |= ( 0x80 >> (bitout&7) );
bitin++;
@@ -545,6 +539,7 @@ int main(int argc, char* argv[])
double volinc;
int level;
int verbose;
int message_size;
wave_io * wave1;
@@ -557,6 +552,8 @@ int main(int argc, char* argv[])
serial_gen ser;
message_size = 0;
memset(&pocctx,0,sizeof(pocctx));
stdoutmode = 0;
@@ -592,6 +589,7 @@ int main(int argc, char* argv[])
message[0] = 0;
if(isOption(argc,argv,"message",(char*)&message)>0)
{
message_size = strlen(message);
}
temp_str[0] = 0;
@@ -602,6 +600,7 @@ int main(int argc, char* argv[])
FILE * f;
int size;
message_size = 0;
f = fopen(temp_str,"rb");
if(f)
{
@@ -619,6 +618,10 @@ int main(int argc, char* argv[])
{
fprintf(stderr,"Error : Can't read %s ...\n",temp_str);
}
else
{
message_size = size;
}
fclose(f);
}
@@ -756,7 +759,7 @@ int main(int argc, char* argv[])
for(i=0;i<8;i++)
{
if( alpha )
batchescnt = set_alphanum_frame((poc_batch *)&batches[j], MAXBATCHCNT-1, ricbatch+i, func&3, (char*)&message);
batchescnt = set_alphanum_frame((poc_batch *)&batches[j], MAXBATCHCNT-1, ricbatch+i, func&3, (char*)&message, message_size);
else
batchescnt = set_numerical_frame((poc_batch *)&batches[j], MAXBATCHCNT-1, ricbatch+i, func&3, (char*)&message);
}
@@ -767,7 +770,7 @@ int main(int argc, char* argv[])
else
{
if( alpha )
batchescnt = set_alphanum_frame((poc_batch *)&batches, MAXBATCHCNT-1, ric, func&3, (char*)&message);
batchescnt = set_alphanum_frame((poc_batch *)&batches, MAXBATCHCNT-1, ric, func&3, (char*)&message, message_size);
else
batchescnt = set_numerical_frame((poc_batch *)&batches, MAXBATCHCNT-1, ric, func&3, (char*)&message);
}