@@ -110,40 +110,35 @@ export const connectToDisplayBroker = (handler: MessageHandler, availTopic: stri
110110 } ) ;
111111} ;
112112
113- < < < << << HEAD
114- // Function to apply calibration offset to a message
115- const applyCalibration = ( message : string ) : string => {
116- // If no calibration string is set, return the original message
117- if ( ! calibrationString ) {
118- return message ;
113+ // Function to apply calibration offsets to the display text
114+ const applyCalibration = ( text : string ) : string => {
115+ const calibrationString = process . env . CALIBRATION_STRING ;
116+
117+ // If no calibration string is provided, return the original text
118+ if ( ! calibrationString || calibrationString . trim ( ) === '' ) {
119+ return text ;
119120 }
120-
121- return message . split ( '' ) . map ( ( char , position ) => {
122- // If character isn't in the flap sequence, return it unchanged
123- if ( ! FLAP_SEQUENCE . includes ( char ) ) {
121+
122+ // Parse the calibration string into an array of offsets
123+ const offsets = calibrationString . split ( ',' ) . map ( offset => parseInt ( offset . trim ( ) , 10 ) ) ;
124+
125+ // Apply the offsets to each character
126+ return text . split ( '' ) . map ( ( char , index ) => {
127+ // If we don't have an offset for this position, don't change it
128+ if ( index >= offsets . length || isNaN ( offsets [ index ] ) ) {
124129 return char ;
125130 }
126131
127- // Get the calibration character for this position in the display
128- // If calibration string is shorter than message, wrap around
129- const calibrationChar = calibrationString [ position % calibrationString . length ] ;
130-
131- // If calibration character isn't in the flap sequence, return original
132- if ( ! FLAP_SEQUENCE . includes ( calibrationChar ) ) {
133- return char ;
132+ // Find the character in the character set
133+ const charIndex = SPLIT_FLAP_CHARSET . indexOf ( char ) ;
134+ if ( charIndex === - 1 ) {
135+ return char ; // Character not in set, return unchanged
134136 }
135137
136- // Find the positions in the flap sequence
137- const targetIndex = FLAP_SEQUENCE . indexOf ( char ) ;
138- const calibrationIndex = FLAP_SEQUENCE . indexOf ( calibrationChar ) ;
139-
140- // Calculate the offset:
141- // If the module shows 'A' when at home position (calibrationChar = 'A'),
142- // and we want to show 'C', we need to find what character is actually
143- // at position 'C' - 'A' steps in the sequence
144- const offset = ( targetIndex - calibrationIndex + FLAP_SEQUENCE . length ) % FLAP_SEQUENCE . length ;
145-
146- return FLAP_SEQUENCE [ offset ] ;
138+ // Apply the offset and wrap around the character set
139+ const newIndex = ( charIndex + offsets [ index ] + SPLIT_FLAP_CHARSET . length ) % SPLIT_FLAP_CHARSET . length ;
140+ return SPLIT_FLAP_CHARSET [ newIndex ] ;
141+ > >>> >>> main
147142=== = ===
148143// Function to apply calibration offsets to the display text
149144const applyCalibration = ( text : string ) : string => {
@@ -190,16 +185,11 @@ export const publishToDisplay = (message: string): boolean => {
190185>>> >>> > main
191186 const calibratedMessage = applyCalibration ( message ) ;
192187
193- client . publish ( publishTopic , calibratedMessage , { qos : 0 , retain : false } , ( err ) => {
194- if ( err ) {
195- console . error ( `[MQTT Client] Failed to publish message to topic "${ publishTopic } ":` , err ) ;
196- } else {
197- < < < << << HEAD
198- if ( calibrationString && calibratedMessage !== message ) {
199- console . log ( `[MQTT Client] Published "${ message } " (calibrated to "${ calibratedMessage } ") to ${ publishTopic } ` ) ;
200- } else {
201- console. log ( `[MQTT Client] Published "${ message } " to ${ publishTopic } ` ) ;
202- }
188+ console . log ( `[MQTT Client] Published "${message } " to ${publishTopic } `) ;
189+ if ( message !== calibratedMessage ) {
190+ console . log ( `[MQTT Client] Calibrated message: "${ calibratedMessage } "` ) ;
191+ }
192+ >>> > >>> main
203193=== = ===
204194 console . log ( `[MQTT Client] Published "${ message } " to ${ publishTopic } ` ) ;
205195 if ( message !== calibratedMessage ) {
0 commit comments