При вызове внешней функции, похоже, лучше стараться преобразовывать к нужному типу вручную, чем надеяться на неявное преобразование. Откуда сценарию на JavaScript знать что там, на стороне External с типами?
Например:
window.external.SendSettings(2,(Delay1_Result*25.0).toFixed(0).toString(),(Delay2_Result*25.0).toFixed(0).toString());
заместо:
window.external.SendSettings(2,(Delay1_Result*25.0).toFixed(0),(Delay2_Result*25.0).toFixed(0));
Второе не работало и вызывало ошибку.
На "Extern" стороне:
public void SendSettings (int typeSettings, string FirstParam, string SecondParam){
byte[] ParamsToSend={0,0,0,0};
int M_1_byte=0; //first param master byte
int S_1_byte=0; //first param slave byte
int M_2_byte=0; //first param master byte
int S_2_byte=0; //first param slave byte
byte CheckSum=0x00;
M_1_byte = int.Parse(FirstParam);
S_1_byte = M_1_byte & 0x00FF;
M_1_byte >>=8;
M_2_byte = int.Parse(SecondParam);
S_2_byte = M_2_byte & 0x00FF;
M_2_byte >>=8;
...
}